package collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

public class CollectionDemo2 {
    public static void main(String[] args) {
        Collection c = new ArrayList();
//        Collection c = new HashSet();
        c.add(new Point(1,2));
        c.add(new Point(3,4));
        c.add(new Point(5,6));
        c.add(new Point(7,8));
        c.add(new Point(9,10));
        c.add(new Point(3,4));
        /*
        集合重写了toString方法,格式为:
        [元素1.toString(),元素2.toString(),元素3.toString(),...]
        如果元素没有妥善的重写toString,则输出集合时内容不够直观
         */
        System.out.println(c);
        Point p = new Point(1,2);
        /*
        对于Set集合而言,不可以存放重要元素,而是否重复是依靠元素的epuals方法进行比较的.
        所以如果元素没有妥善重写epuals(使用Object提供的equals时为==比较)
        则如果为两个不同对象就算元素内容相同equals比较结果也是false.
        妥善重写,内容相同的元素是无法存入集合两次的.
         */
        c.add(p);//Point不重写equals则可以存入Set集合,重写了则无法存入
        System.out.println(c);

        Point p2 = new Point(3,4);
        /*
        contains:包含
        boolean contains(Object o)
        判断集合中是否包含给定元素,包含返回true,否则返回false
        集合判断元素的逻辑是看该元素与集合
         */
        boolean containe = c.contains(p2);
        System.out.println("包含:" + containe);

        /*
        remove:移除
        boolean remove(Object o)
        从集合中移除给定元素,删除的是与给定元素equals比较为true的元素
        注:对于可重复的集合,删除
         */
        c.remove(p2);
        System.out.println(c);




    }
}
